package com.aaa.web.dao.imarketdao;

import com.aaa.entity.*;
import com.aaa.entity.repair.BackEntrepot;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @ClassName IMarketManageDao
 * @Description 销售管理
 * @Author caolinlin
 * @Date 2018/12/18 15:35
 **/
@Mapper
@Component
public interface IMarketManageDao {

    /**
     * 获取全部订单数据
     * @param e
     * @return
     */
    List<BackExpenserecord> getAllMarketManage(@Param("e") BackExpenseorder e, @Param("schoolId") int schoolId);

    /**
     * 获取全部订单条数
     * @param e
     * @return
     */
    Integer getMarketManageCount(@Param("e") BackExpenseorder e, @Param("schoolId") int schoolId);

    /**
     * 删除订单表中的数据(仅修改状态码)
     * @param e
     * @return
     */
    int delMarketByOrderId(BackExpenseorder e);

    /**
     * 获取该订单的详细信息
     * @param e
     * @return
     */
    List<BackExpenserecord> getDetailMarketManage(BackExpenseorder e);

    /**
     * 获取消费类型列表
     * @return
     */
    List<AppExpensetype> getExpenseTypeList();

    /**
     * 获取商品类型列表
     * @return
     */
    List<BackGoodstype> getGoodStypeAddList();

    /**
     * 批量添加订单
     * @param backEntrepots
     * @return
     */
    int addMarketManage(List<BackEntrepot> backEntrepots);

    /**
     * 批量添加订单记录
     * @param backEntrepots
     */
    int addMarketManageRecorder(List<BackEntrepot> backEntrepots);

    /**
     * 批量修改仓库表中的库存量
     * @param backEntrepots
     */
   /* int updateMarketManageByOrder(List<BackEntrepot> backEntrepots);*/

    /**
     * 修改修改仓库表中的库存量
     * @param backEntrepots
     * @return
     */
    int updateMarketManageByOrder(BackEntrepot backEntrepots);

    /**
     * 根据 商品种类id 在 仓库表 中查询出 本地的 对应 商品种类 的商品
     * @param goodstype_id
     * @param schoolId
     * @return
     */
    List<BackEntrepot> selGoodsListById(int goodstype_id, int schoolId);

    /**
     * 获取车辆列表
     * @param schoolId
     * @return
     */
    List<BackEntrepot> getCarsList(int schoolId);

    /**
     * 获取仓库商品信息
     * @param schoolId
     * @param goodstypeId
     * @return
     */
    List<BackEntrepot> getEntrepotGoods(int schoolId, int goodstypeId);

    /**
     * 根据订单号获取详细信息
     * @param e
     * @return
     */
    List<BackExpenseorder> getDetailMarketByOrderId(BackExpenseorder e);

    /**
     * 将库存中创建订单时减去的订单数再加回去
     * @param goodsid
     * @param number
     * @param schoolId
     * @return
     */
    int delMarketByOrderIdOnEntrepot(@Param("goodsid") int goodsid, @Param("number")int number, @Param("schoolId")int schoolId);

    /**
     * 删除订单表中的数据
     * @param e
     * @return
     */
    int delMarketByOrderIdOnOrder(BackExpenseorder e);

    /**
     * 修改订单记录表中该订单号的数据的isdelete状态为已删除
     * @param e
     * @return
     */
    int delMarketByOrderIdOnRecord(BackExpenseorder e);


}
